(function(UB) {
	(function() {
		Array.prototype.toString = function() {
			for (var i = 0, lng = this.length; i < lng; i++) {
				console.info(this[i]);
			}
		};
	}());

	var MAX = UB.Configuration.MAX || 20;

	var getRandom = function() {
		return Math.random();
	};
	
	var getRandomNumber = function() {
		return getRandom() * MAX;
	};
	
	UB.Utils = {
		getRandomNumber: getRandomNumber,
		logger: function(str) {
			console.log(str, ", random: ", this.getRandomNumber());
		},
		loggerExtended: function() {
			console.log.apply(console, arguments);
		},
		ajax: function(url, options) {
			jQuery.ajax({
				url: url,
				success: options.success
			});
		}
	};
	
	UB.Utils.Callback = function(fn, scope, args) {
		this.fn = (typeof fn === "function") ? fn : function() {};
		this.scope = scope || window;
		this.args = args || [];
		
		this.execute = function() {
			this.fn.apply(this.scope, arguments/*, this.args*/);
		};
	};
}(window.UB));